﻿using Engine.Graphics;
using SharpDX;
using System.Collections.Generic;
using System.IO;

namespace ForestBorder
{
    public interface ICreateForestBorderMesh
    {
        #region Public Methods

        List<IGameVertex> CreateGameVerticesForForest(Vector3[] middle, float widthPointOne, float widthPointTwo, float textureScale,
            float textureUcoordinatesData, float[] middleLineDistances, float lengthOfStreet, DataForForestvertexCalclation vertexData);

        string GetGameName();

        /// <summary>
        /// When forest border addin uses usercontrols from addin, this method could be deleted.
        /// </summary>
        /// <returns></returns>
        DataForForestvertexCalclation GetStandardVertexData();

        DataForForestvertexCalclation ReadForestAddinData(BinaryReader br, int Version);

        void SaveForestData(DataForForestvertexCalclation data, BinaryWriter bw);

        void SayHello(string tach);

        #endregion Public Methods
    }

    /// <summary>
    /// here are the gamespecific values stored, which are needed for vertex creation for game.
    /// </summary>
    public struct DataForForestvertexCalclation
    {
        #region Public Fields

        public object gameDllData;

        public int version;

        #endregion Public Fields

        #region Internal Fields

        internal int sizeInBytes;

        #endregion Internal Fields
    }
}